JavaScript가 처음 실행될 때 JavaScript Engine은 Global Execution Context를 만든다. 만들어지는 동안 다음 과정을 수행한다.
window
혹은 Node.js의 global
this
에 전역객체를 bind한다.undefined
로 초기화한다.코드를 한줄 한줄 실행하며, 변수를 초기화하고 함수를 실행한다.
함수가 실행될 때마다 Function Execution Context가 생성된다.
Function Execution Context는 전역 객체 대신에 arguments
오브젝트를 생성한다.
arguments
오브젝트는 넘어온 인자에 대한 참조를 가지고있고, 실행 단계전에 모두 undefined
로 초기화한다.
this
의 binding도 이뤄진다. 자세한 내용은 [[JavaScript - this]]를 참조하자.
각 Execution Context를 관리하기 위해 Call Stack 자료 구조를 사용한다.